/**
 * Created by root on 2017-11-25.
 */
// 系统配置
var config = {

    commPost: function (url, params, onSuccess) {
        $.ajax({
            url: url,
            type: "post",
            headers: {
                'type':'pc'
            },
            data: params,
            success: function (data) {
                if (data.status == 1) {
                    onSuccess(data.data, data.info);
                } else {
                    layer.alert(data.info);
                }
            }
        })
    },
    //同步post请求
    commSynPost: function (url, params, onSuccess) {
        $.ajax({
            headers: {
                'type':'pc'
            },
            url: url,
            data: params,
            type: "post",
            async: false,
            success: function (data) {
                if (data.status == 1) {
                    onSuccess(data.data, data.info);
                } else {
                    layer.alert(data.info);
                }
            }
        })
    },
    commGet: function (url, onSuccess) {
        $.ajax({
            type: "get",
            headers: {
                'type':'pc'
            },
            url: url,
            success: function (data) {
                if (data.status == 1) {
                    onSuccess(data.data);
                } else {
                    layer.msg(data.info);
                }
            }
        })
    },
    initTable: function (id, urls, colss, where, exportOptions, toolbar) {
        if (!toolbar) {
            toolbar = "#toolbar";
        }
        $('' + id).bootstrapTable({
            url: urls,//请求后台的URL（*）
            ajaxOptions:{
                headers: {"type":"pc"}
            },

            method: 'get',                      //请求方式（*）
            toolbar: toolbar,                //工具按钮用哪个容器
            exportDataType: 'all',
            showExport: true,//显示导出按钮
            exportTypes: ['csv', 'txt', 'doc', 'excel'],
            exportOptions: exportOptions,
            striped: true,                      //是否显示行间隔色
            cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
            pagination: true,                   //是否显示分页（*）
            sortable: false,                     //是否启用排序
            sortOrder: "asc",                   //排序方式
            // queryParams: oTableInit.queryParams,//传递参数（*）
            sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
            pageNumber: 1,                       //初始化加载第一页，默认第一页
            pageSize: 10,                       //每页的记录行数（*）
            pageList: [10, 15, 20, 25],        //可供选择的每页的行数（*）
            search: false,                       //是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
            strictSearch: false,
            showColumns: true,                  //是否显示所有的列
            showRefresh: true,                  //是否显示刷新按钮
            minimumCountColumns: 2,             //最少允许的列数
            clickToSelect: true,                //是否启用点击选中行
            //height: 1500,                        //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
            uniqueId: "ID",                     //每一行的唯一标识，一般为主键列
            showToggle: true,                    //是否显示详细视图和列表视图的切换按钮
            cardView: false,                    //是否显示详细视图
            detailView: false,                   //是否显示父子表
            columns: colss,
            queryParams: function (params) {
                var pageNo = 1;
                var pageSize = 100;
                if (params.limit) {
                    pageNo = parseInt(params.offset / params.limit) + 1;
                    pageSize = params.limit;
                } else {
                    var html = $(".pagination-info").html();
                    var patt1 = /显示第(.*)到第(.*)条记录，总共 (.*) 条记录/;
                    var arr = html.match(patt1);
                    var start = arr[1];
                    var end = arr[2];
                    pageSize = end - start + 1;
                    pageNo = end / pageSize;
                }


                return $.extend(where, params,{
                    pageSize: pageSize,
                    page: pageNo
                });
            }
        });
    },
    tableRefresh: function (id) {
        if (!id)
            id = "dataTable";
        setTimeout(function (data) {
            $("#" + id).bootstrapTable("refresh", "{silent: true}");
        }, 500);

    },
    tableQuery: function (id, param) {
        $("#" + id).bootstrapTable("refresh", {query: param})
    },
    alert:function(msg){
        layer.alert(msg);
    },
    closeLayer(info){
        layer.closeAll();
        layer.alert(info);
    },
    openPageLayer: function (title, url, area, tableId, autoClose) {
        layer.open({
            type: 2,
            title: title,
            content: "/page/" + url //这里content是一个URL，如果你不想让iframe出现滚动条，你还可以content: ['http://sentsin.com', 'no']
            , area: area
            , maxmin: true
            , btn: ['保存', '取消']
            , btnAlign: 'r'
            , yes: function (index, layero) {
                var iframeWin = window[layero.find('iframe')[0]['name']];
                var res = iframeWin.ApplicationSave(index);
                if (autoClose) {
                    layer.close(index);
                    if (tableId)
                        config.tableRefresh(tableId);
                    else {
                        config.tableRefresh();
                    }
                }
            },
            btn2: function (index, layero) {
                layer.close(index);
            }

        });
    },
    openNobtnLayer: function (title, url, area, max) {
        var index = layer.open({
            type: 2,
            title: title,
            maxmin: true,
            closeBtn: 2,
            content: "/page/" + url //这里content是一个URL，如果你不想让iframe出现滚动条，你还可以content: ['http://sentsin.com', 'no']
            , area: area
        });
        if (max == true) {
            layer.full(index);
        }
    },
    openConfirmLayer: function (title, url, data, callback) {
        layer.confirm(title, function (index) {

            config.commPost(url, data, function (data, info) {
                callback(data);
                layer.close(index);
                layer.alert(info)

            })
        });
    },
    getQueryString: function (name) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
        var r = window.location.search.substr(1).match(reg);
        if (r != null) return decodeURI(r[2]);
        return null;
    }
}
